Communication packet conversion

ABSTRACT

Techniques for converting communication packets in a network having multiple nodes are described herein. A node may receive communication packets from one or more neighboring nodes. Each communication packet may include control data and payload data. The node may extract the payload data and store the payload data for a time period. The node may determine whether to concatenate the extracted payload data of the communication packets (e.g., based on destinations to where each of the extracted payload data are to be sent, a supported data rate, an application type associated with the extracted payload data, etc.). The node may concatenate the extracted payload data of the communication packets and send the concatenated payload data to another node in a communication packet.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of, and claims priority to, PCTInternational Application No. PCT/US12/30860, filed Mar. 28, 2012, whichclaims foreign priority to European Application No. 12161054.7, filedMar. 23, 2012, both of which are incorporated herein by reference.

BACKGROUND

Communication networks, such as wireless mesh networks, are used toconnect a variety of different devices (e.g., nodes). Thesecommunication networks often contain multiple different generations ofnodes having different characteristics and capabilities. For example,nodes may utilize different data rates and/or modulation techniques tosend and/or receive data over the network. Further, these communicationnetworks may experience different interference and/or network throughputcharacteristics. This often results in fragmented and/or different sizeddata packets and/or congestion on the network. Due to relatively fixedamounts of overhead associated with each communication, these fragmentedor different sized data packets may require substantial communicationtime as the data packets are transferred through the network. Thiscommunication time may be lengthened when a data packet traversesmultiple nodes in order to reach a destination.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is set forth with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different figures indicates similaror identical items or features.

FIG. 1 illustrates an example architecture to convert communicationpackets as data within the communication packets traverses one or morenodes of a network.

FIG. 2 illustrates additional details of an example node of thearchitecture of FIG. 1.

FIG. 3 illustrates an example process of converting communicationpackets as data within the communication packets traverses one or morenodes of a network.

FIG. 4 illustrates an example communication frame that may be used tocommunicate payload data over a network.

FIGS. 5A-5B illustrates an example process for extracting payload datafrom communication packets, determining whether to concatenate theextracted payload data, concatenating the extracted payload data, andsending the concatenated payload data in a communication packet.

DETAILED DESCRIPTION

As discussed above, existing techniques for transmitting data do notprovide an effective way of transmitting data within a wireless meshnetwork. For example, existing transmission techniques are not wellsuited to transmit data in a heterogeneous wireless mesh network inwhich nodes have differing capabilities. Further, existing transmissiontechniques are not well suited in a wireless mesh network thatexperiences different interference and/or network throughputcharacteristics (e.g., congestion).

This disclosure describes techniques of transmitting data in anefficient manner in a network of nodes. In particular, techniques aredirected to converting communication packets as data within thecommunication packets traverses nodes of the network.

In some implementations, a particular node may receive communicationpackets over a wireless connection on a network. The communicationpackets may be received from one or more neighboring nodes, such asnodes that are located within a predetermined distance to the particularnode. A communication packet may include control data and payload data.As used herein, the term “payload data” may generally refer to data thatis intended to be transmitted and/or received. Meanwhile, the term“control data” may generally refer to data associated with the payloaddata for the purpose of routing, sending (e.g., transmitting),receiving, and/or storing the payload data, such as headers, footers,preambles, etc.

The particular node that received the communication packets may extractpayload data from each of the communication packets. The particular nodemay determine whether to concatenate the extracted payload data. Thatis, the particular node may determine whether to combine extractedpayload data from a first communication packet with extracted payloaddata from a second communication packet.

For example, the particular node may determine to concatenate theextracted payloads when the extracted payloads are to be sent to a samenode or nodes within a particular geographical region. Alternatively, oradditionally, the particular node may determine to concatenate theextracted payloads when a data rate supported by the particular node anda neighboring node to which the payload data will be sent is greaterthan a data rate supported by the particular node and a node that sentone of the communication packets. Further, in some instances theparticular node may determine to concatenate the extracted payloads whenthe payloads are associated with a same or similar application orapplication type, such as an application that generated the payload data(e.g., an application for reporting meter consumption data).

When the particular node determines to concatenate the extracted payloaddata, the particular node may concatenate the extracted payload data andsend (e.g., transmit) the concatenated payload data to another node. Theconcatenated payload data may be sent in a communication packet. In someinstances, the concatenated payload data may be sent to a node that iscloser to a destination node than the particular node. In some examples,the concatenated payload data may be sent at a higher data rate than adata rate at which at least one of the communication packets wasreceived at the particular node.

In some instances, concatenated payload data is segmented at a nodebefore it is sent to another node. The concatenated payload data may besegmented based on a data rate and/or a modulation technique supportedby a node that will send the payload data and/or a node that willreceive the payload data. For example, when a data rate supported bysending and receiving nodes is greater than or equal to a predetermineddata rate, concatenated data may be segmented into segments that eachhas more than a predetermined number of bits and/or bytes. The segmentsmay be sent individually to the receiving node in communication packets.

In some examples, the techniques described herein may be leveraged forencrypted data (e.g., payload data). For instance, when encrypted dataneeds to traverse a network of nodes, a communication packet may be usedwith unencrypted control data and encrypted payload data. Here, the nodemay use the unencrypted control data to potentially combine theencrypted payload data and forward on combined payload data to anothernode. For instance, the node may use routing information (e.g., sourceand/or destination addresses) included in the control data to determinewhether the encrypted payload data is destined for a same node as otherpayload data. As such, in some examples where encrypted payload data isused, the encrypted payload data may be combined and forwarded on toanother node, even when the node is unable, or does not wish, to decryptthe payload data and retrieve the underlying data.

The conversion techniques are described herein in the context of autility mesh network including a plurality of nodes. While thetechniques are described in the context of a utility mesh network, thetechniques may additionally, or alternatively, be applicable to othernetworks and/or other applications. As such, the nodes may include anydevice coupled to a communication network and capable of sending and/orreceiving data.

In various embodiments described herein, data may be transmitted in anefficient manner. For example, by combining (e.g., concatenating)payload data from multiple communication packets, data may be sent overa network with less overhead (e.g., control data) in comparison totransmitting the payloads individually in communication packets. Thismay reduce communication time for transmitting data over the network andincrease communication capacity of the network.

In addition, in some instances by combining and/or segmenting payloaddata based on a modulation technique and/or data rate supported by nodesof a network, capabilities of the nodes may be leveraged to achieve oneor more desired characteristics. For example, capabilities of nodes maybe leveraged to transmit payload data at a particular data rate and/orwith a particular modulation technique that is optimal for avoidinginference, transferring data over long or short distances, and/orincreasing network throughput. In one example, a node may transmitcombined payload data at a data rate that is greater than or less than adata rate at which the node received some or all of the individualpayload data. In another example, a node may transmit segmented payloaddata to ensure that the data is transferred to a node associated withparticular characteristics, such as a long connectivity distance, stronginterference, etc.

The sections below are examples provided for the reader's convenienceand are not intended to limit the scope of the claims, nor theproceeding sections. Furthermore, the techniques described in detailbelow may be implemented in a number of ways and in a number ofcontexts. One example implementation and context is provided withreference to the following figures, as described below in more detail.Additionally, the following implementation and context is meant to berepresentative of other possible implementations.

Example Architecture

FIG. 1 is a schematic diagram of an example architecture 100 of awireless mesh network in which the techniques described herein may beimplemented. The architecture 100 includes a plurality of nodes 102A,102B, 102C, . . . 102N (collectively referred to as nodes 102)communicatively coupled to each other via direct communication paths(e.g., wireless connections). In this example, N represents a number ofnodes in an autonomous routing area (ARA), such as a wide area network(WAN), metropolitan area network (MAN), local area network (LAN),neighborhood area network (NAN), personal area network (PAN), or thelike.

Each direct communication path may represent a plurality of channelsover which a node is able to transmit and/or receive data. Each of theplurality of channels may be defined by a frequency range which may bethe same as or different from frequency ranges of others of theplurality of channels. In some instances, the plurality of channelscomprises radio frequency (RF) channels. The plurality of channels maycomprise a control channel and multiple data channels. In someinstances, the control channel is utilized for communicating one or moremessages between nodes to specify one of the data channels to beutilized to transfer data. Generally, transmissions on the controlchannel are shorter relative to transmissions on the data channels.

Each of the nodes 102 may be implemented as any of a variety ofconventional computing devices such as, for example, smart utilitymeters (e.g., electric, gas, and/or water meters), control devices,sensors (e.g., temperature sensors, weather stations, frequency sensors,etc.), transformers, routers, servers, relays (e.g., cellular relays),switches, valves, combinations of the foregoing, or any device couplableto a communication network and capable of sending and/or receiving data.In some cases, the nodes 102 may include different types of nodes (e.g.,smart meters, cellular relays, sensors, etc.), different generations ormodels of nodes, and/or nodes that otherwise are capable of transmittingon different channels and using different modulation techniques, datarates, protocols, signal strengths, and/or power levels. In these cases,the architecture 100 may represent a heterogeneous network of nodes.

In the example of FIG. 1, the nodes 102 are also configured tocommunicate with a central office 104 via an edge device (e.g., cellularrelay, cellular router, edge router, DODAG root, etc.) which serves as aconnection point of the ARA to a backhaul network(s) 106, such as theInternet. In the example illustrated, the node 102A serves as a cellularrelay to relay communications from the other nodes 102B-102N of the ARAto and from the central office 104 via the network(s) 106.

The node 102B is representative of each of the nodes 102 in the example100 and includes a radio 108 and a processing unit 110. The radio 108comprises an RF transceiver configured to transmit and/or receive RFsignals via one or more of a plurality of channels/frequencies. In someimplementations, each of the nodes 102 includes a single radio 108configured to send and receive data on multiple different channels, suchas the control channel and multiple data channels of each communicationpath. The radio 108 may also be configured to communicate using aplurality of different modulation techniques, data rates, protocols,signal strengths, and/or power levels.

The processing unit 110 may include one or more processor(s) 112communicatively coupled to memory 114. The memory 114 may be configuredto store one or more software and/or firmware modules, which areexecutable on the processor(s) 112 to implement various functions. Whilethe modules are described herein as being software and/or firmwareexecutable on a processor, in other embodiments, any or all of themodules may be implemented in whole or in part by hardware (e.g., as anASIC, a specialized processing unit, etc.) to execute the describedfunctions.

In the embodiment of FIG. 1, the memory 114 includes an extractionmodule 116 and a concatenation module 118. The extraction module 116 isconfigured to extract data from communication packets received at thenode 102B. For example, the extraction module 116 may extract payloaddata from communication packets 1-M 120 that are received from the node102C and/or extract payload data from communication packets 1-P 122 thatare received from the node 102N.

A communication packet may generally refer to a packet that istransmitted between the nodes 102. A communication packet may betransmitted to a particular node or transmitted to multiple nodes, suchas in the case of broadcasting. While the techniques are describedherein in the context of packets, these techniques may similarly applyto other types of protocol data units (PDUs), such as bits, frames,segments, etc.

As noted above, a communication packet may include payload data andcontrol data. Payload data may generally refer to data that is intendedto be sent (e.g., transmitted), received, and/or stored. This data isincluded in the “payload” of a transmission. In some instances, payloaddata includes data that is generated at a node and/or data that is to besent and/or received at a node. Further, in some instances the term“payload” is defined by a standard, such as the IEEE 802.11 or 802.15standard.

The control data may refer to data associated with payload data for thepurpose of routing, sending (e.g., transmitting), receiving, and/orstoring the payload data. In some instances, control data refers tonon-payload data (e.g., data that is not the payload data). Control datamay include headers, footers, preambles, and/or metadata, for example.In some instances, the control data includes modulation and data rateinformation, error detection and correction information, encryptioninformation, and so on. Further, in some instances the control dataincludes address information, such as an address of a source node fromwhich a communication packet was sent, a destination node to whichpayload data is to be sent, a PAN coordinator of the network, or thelike. In some examples, control data is defined through a standard, suchas the IEEE 802.11 or 802.15 standard. For instance, control data mayrefer to headers that are defined in the IEEE 802.15 standard.

By way of example and not limitation, in a utility mesh network wherenodes are associated with utility meters (e.g., electric, gas, water,etc.), meter consumption data may be generated at a source node, such asa water reading. In this example, the meter consumption data may bereported to a central office by traversing nodes of the network. Thatis, the meter consumption data may be sent from one node to the next inorder to arrive at the central office. While traversing the network,other data may be transmitted along with the meter consumption data. Forexample, the source node may transmit the meter consumption data with anaddress of the central office. Here, the meter consumption datarepresents payload data and the address of the central office representscontrol data.

Meanwhile, the concatenation module 118 is configured to determinewhether to concatenate (e.g., combine) data extracted by the extractionmodule 116. The determination whether to concatenate may be based onvarious factors, such as a destination to where extracted payload datais to be sent, a data rate supported by the node 102B and/or aneighboring node to which the concatenated payload data will be sent,and/or an application or application type associated with extractedpayload data. When it is determined to concatenate extracted payloaddata, the concatenation module 118 may concatenate the extracted payloaddata.

For instance, the concatenation module 118 may determine that firstpayload data extracted from one of the communication packets 1-P 122 isto be sent to a same node as second payload data extracted from one ofthe communication packets 1-M 120. Based on this determination, theconcatenation module 118 may concatenate the first payload data with thesecond payload data. The concatenated payload data may be transmittedfrom the node 102B to a neighboring node in a communication packet 124.

The memory 114 in which the extraction module 116 and concatenationmodule 118 are stored may comprise computer-readable media and may takethe form of volatile memory, such as random access memory (RAM) and/ornon-volatile memory, such as read only memory (ROM) or flash RAM.Computer-readable media includes volatile and non-volatile, removableand non-removable media implemented in any method or technology forstorage of information such as computer-readable instructions, datastructures, program modules, or other data for execution by one or moreprocessors of a computing device. Examples of computer-readable mediainclude, but are not limited to, phase change memory (PRAM), staticrandom-access memory (SRAM), dynamic random-access memory (DRAM), othertypes of random access memory (RAM), read-only memory (ROM),electrically erasable programmable read-only memory (EEPROM), flashmemory or other memory technology, compact disk read-only memory(CD-ROM), digital versatile disks (DVD) or other optical storage,magnetic cassettes, magnetic tape, magnetic disk storage or othermagnetic storage devices, or any other non-transmission medium that canbe used to store information for access by a computing device. Asdefined herein, computer-readable media does not include communicationmedia, such as modulated data signals and carrier waves.

The network(s) 106 represents a backhaul network, which may itselfcomprise a wireless or wired network, or a combination thereof Thenetwork(s) 106 may be a collection of individual networks interconnectedwith each other and functioning as a single large network (e.g., theInternet or an intranet). Further, the individual networks may bewireless or wired networks, or a combination thereof

The central office 104 may be implemented by one or more computingdevices, such as servers, personal computers, laptop computers, etc. Theone or more computing devices may be equipped with one or moreprocessor(s) communicatively coupled to memory. In some examples, thecentral office 104 includes a centralized meter data management systemwhich performs processing, analysis, storage, and/or management of datareceived from one or more of the nodes 102. For instance, the centraloffice 104 may process, analyze, store, and/or manage data obtained froma smart utility meter, sensor, control device, router, regulator,server, relay, switch, valve, and/or other nodes. Although the exampleof FIG. 1 illustrates the central office 104 in a single location, insome examples the central office 104 may be distributed amongst multiplelocations and/or may be eliminated entirely (e.g., in the case of ahighly decentralized distributed computing platform).

Example Node

FIG. 2 is a schematic diagram showing additional details of example node102B in FIG. 1. In this example, the radio 108 includes an antenna 200coupled to an RF front end 202 and a baseband processor 204. The RFfront end 202 may provide transmitting and/or receiving functions. TheRF front end 202 may include high-frequency analog and/or hardwarecomponents that provide functionality, such as tuning and/or attenuatingsignals provided by the antenna and obtained from one or more of thenodes 102. The RF front end 202 may provide a signal to the basebandprocessor 204.

In one example, all or part of the baseband processor 204 may beconfigured as a software (SW) defined radio. In one example, thebaseband processor 204 provides frequency and/or channel selectionfunctionality to the radio 108. For example, the SW defined radio mayinclude mixers, filters, amplifiers, modulators and/or demodulators,detectors, etc., implemented in software executed by a processor orapplication specific integrated circuit (ASIC) or other embeddedcomputing device(s). The SW defined radio may utilize the processor(s)112 and software defined and/or stored in memory 114. Alternatively, theradio 108 may be implemented at least in part using analog components.

In some implementations, the radio 108 utilizes a modulation techniqueand/or data rate associated with a previously defined standard. Themodulation technique and/or data rate may be associated with a standarddefined by the Institute of Electrical and Electronics Engineering(IEEE), such as the IEEE 802.11 standard, the IEEE 802.15 standard(e.g., 802.15.4), etc. In one example, the modulation technique and/ordata rate are selected from the following non-exhaustive list:

-   -   Frequency Shift Keying (FSK) modulation with a data rate of 50        or 150 kbps; channel spacing of 200 or 400 kHz; and/or a first        channel starting at 902.2 or 902.4 MHz. FSK modulation may        utilize convolutional code forward error correction (FEC).    -   Orthogonal Frequency-Division Multiplexing (OFDM) with physical        modulations of binary phase-shift keying (BPSK), quadrature        phase-shift keying (QPSK), and/or quadrature amplitude        modulation (QAM) (e.g., 16-QAM); a data rate of 50, 100, 200,        300, 400, 600, or 800 kbps; and/or channel spacing of 400 or 800        kHz. OFDM may utilize convolutional FEC with ½ or ¾ coding rate.    -   Direct-sequence spread spectrum (DSSS) modulation with a        physical modulation of offset quadrature phase-shift keying        (O-QPSK); a data rate of 31.25, 125, 250, or 500 kbps; and/or        channel design based on a previously defined standard, such as        the 802.15.4 standard. DSSS may utilize convolutional FEC.

In further examples, the radio 108 may utilize a customized modulationtechnique. The customized modulation technique may be associated with adata rate of 6 or 10 kbps.

Meanwhile, the memory 114 may include a communication module 206configured to cause data to be received and/or sent (e.g., transmitted)over a communication path (e.g., wireless connection). For example, thecommunication module 206 may cause a communication packet to be receivedat the node 102B and/or sent from the node 102B. In some instances, thecommunication module 206 may cause the radio 108 to tune from afrequency associated with a particular channel to another frequencyassociated with another channel.

The memory 114 may also include a segmentation module 208 configured tosegment data. For example, the segmentation module 208 may segmentpayload data that has been concatenated by the concatenation module 118.In some instances, data is segmented by the segmentation module 208based at least in part on a modulation technique and/or data rateassociated with one or more of the nodes 102. For example, the node 102Bmay wish to send concatenated payload data to the node 102A. Here, whena data rate supported by the nodes 102A and 102B is greater than apredetermined data rate, the concatenated payload data may be segmentedinto payloads that each has more than a predetermined number of bitsand/or bytes.

In some instances, the memory 114 also includes a metrology module 210configured to collect consumption data of one or more resources (e.g.,electricity, water, natural gas, etc.). The consumption data mayinclude, for example, electricity consumption data, water consumptiondata, and/or natural gas consumption data. The consumption data mayinclude data generated at the node 102B, another node (e.g., the node102C and/or 102N), or a combination thereof The collected consumptiondata may be transmitted to one or more other nodes 102 for eventualpropagation to the central office 104 or another destination.

Further, in some instances the memory 114 includes anencryption/decryption module 212 configured to encrypt and/or decryptdata. For example, the encryption/decryption module 212 may encryptand/or decrypt payload data from one or more communication packets. Insome examples, first and/or second payload data may be decrypted,combined, reencrypted, and sent to another node. Theencryption/decryption module 212 may utilize and/or generateencryption/decryption keys.

Example Communication Packet Conversion

FIG. 3 illustrates an example process 300 of converting communicationpackets as data within the communication packets traverses one or morenodes of a network. Here, nodes 302-308 are configured to communicate ina wireless network and may be similar to the nodes 102 in FIG. 1. Thenodes 302-308 may be located within a predetermined distance to eachother such that at least some of the nodes 302-308 may communicate.

As illustrated, the node 306 may receive communication packets 310 fromthe nodes 302 and/or 304. The communication packets 310 may be receivedover one or more wireless connections over a period of time. In someinstances, the communication packets 310 are received from one of thenodes 302 and 304, while in other instances at least one communicationpacket is received from each of the nodes 302 and 304.

The communication packets 310 may vary in size (e.g., number of bits)and/or include fragmented data (e.g., payload data includes a portion ofthe data). This may occur for various reasons including, for example,differing modulation techniques and/or data rates supported by nodes ofa network, differing distances between the nodes, differing uses forpayload data included in the communication packets 110, and so on.

In some instances, payload data of a communication packet may include arelatively small amount of data in comparison to control data of thecommunication packet. That is, the payload data may include less bitsand/or bytes than the control data. This may result from relativelysmall amounts of information that are transmitted periodically (e.g.,small in comparison to control information). For example, meterconsumption data may be generated and transmitted from a particular nodeat a regular interval.

At the node 306, payload data of each of the communication packets 310may be extracted. This may include removing control data from each ofthe communication packets 310. Extracted payload data 312 may be storedin memory of the node 306. In some instances, the node 306 extracts andstores payload data as each of the communication packets 310 isreceived.

In some implementations, the extracted payload data 312 is stored for atime period. In some instances, the time period is predetermined, whilein other instances the time period is not previously determined (e.g.,the time period may be determined on the fly based on conditions such asnetwork traffic). The time period may comprise a contention window,multiple contention windows, or portions of one or more contentionwindows, for example. In some instances, the contention window isassociated with the node 306, while in other instances the contentionwindow is associated with the nodes 302, 304, and/or 308, while in stillother instances all or portions of contention windows associated withnodes 302, 304, 306, and/or 308 may be used separately or in combinationto define the time period during which payload data is stored.

As used herein, a “contention window” refers to a period of time duringwhich a node waits to transmit, upon cessation of RF signals on aparticular channel, before transmitting. In some instances, differentnodes have contention windows of different lengths. The contentionwindows provide a “staggered start,” wherein one node is permitted tostart RF transmission before other nodes, thereby forcing the othernodes waiting to transmit to suspend a timeout calculation of their owncontention windows. Accordingly, contention windows are part of acollision avoidance system in wireless networks.

Alternatively, or additionally, the time period may comprise a timeperiod reserved for communication on a network (e.g., a predeterminedcommunication time period). For example, the time period may comprise aparticular time period that is reserved for communication (e.g.,transmitting a communication packet) between the node 302 and the node306 and/or between the node 304 and the node 306. Here, the reservedtime period may be communicated to neighboring nodes (e.g., nodes withincommunication range) before the nodes 302 and/or 304 communicate (e.g.,transmit a communication packet). Moreover, in some instances the timeperiod is specified by a network management system and/or a userassociated with the network.

In some instances, a node may store extracted payload data for a timeperiod (e.g., predetermined time period) based on information in acommunication packet. For example, a particular node may receive a firstcommunication packet indicating that payload data includes a portion ofsegmented data located at another node. Here, the first communicationpacket may also indicate that a second communication packet will betransmitted with the remaining segmented data from the other node. Thisinformation may be indicated in control data and/or payload data of thefirst communication packet. Knowing that an entirety of the segmenteddata has not been received, the particular node may store the payloaddata of the first communication packet for a time period, such as aperiod reserved for communication between the particular node and theother node. During the time period, the particular node may receive thesecond communication packet that includes the remaining segmented data.As discussed in further detail below, this may allow the node to wait totransmit data until an entirety of the data has been received.

Meanwhile, in other instances a node may have been previously configuredto store extracted payload data for a time period (e.g., predeterminedtime period). For example, a user associated with a network of the nodemay configure the node to automatically store extracted payload data fora particular time period.

After receiving at least some of the communication packets 310, the node306 may determine whether to concatenate (e.g., combine) extractedpayload data. The determination may be based on a destination ofextracted payload data, a modulation technique and/or data ratesupported by one or more nodes, and/or an application or applicationtype associated with extracted payload data.

For instance, the node 306 may determine to concatenate first and secondextracted payload data when the first and second extracted payload dataare to be sent to a same geographical region. For example, when adestination address associated with the first extracted payload data anddestination address associated with the second extracted payload dataidentify a same node or nodes within a predetermined distance of eachother, the node 306 may determine that the first and second extractedpayload data are to be sent to a same geographical region and maydetermine to concatenate the first and second extracted payload data.Here, the first and second extracted payload data may have beenextracted from communication packets transmitted from a same node ordifferent nodes. The node 306 may determine a destination address ofpayload data based on address information included in a communicationpacket, such as address information in control data.

Further, in some instances the node 306 may determine to concatenatefirst extracted payload data with second extracted payload data when thenode 306 and/or the node 308 support a particular modulation techniqueand/or data rate. For example, when a node that will transmitconcatenated payload data (e.g., the node 306) and/or a node that willreceive the concatenated payload data (e.g., the node 308) support adata rate that is greater than or equal to a data rate at which acommunication packet was received, then it may be determined toconcatenate the first and second extracted payload data. In someinstances, a higher data rate may allow a larger communication packet tobe transmitted in comparison to a lower data rate.

Alternatively, or additionally, the node 306 may determine toconcatenate first extracted payload data with second extracted payloaddata when the first and second extracted payload data are associatedwith a same or similar application or application type. For instance,the first and second extracted payload data may be associated with anapplication configured to generate a particular type of information.

To illustrate, a metrology application may be configured on the node 302to retrieve meter consumption data (e.g., a meter reading) of the node302 and report the meter consumption data to a central office. Inreporting to the central office, the meter consumption data may betransmitted to the node 306 as payload data in a communication packet.Meanwhile, a same metrology application on the node 304 may transmitmeter consumption data of the node 304 to the node 306 as payload datain a communication packet. The node 306 may determine to concatenate thepayload data received from the node 302 and payload data received fromthe node 304, where the payload data originated from a same application(e.g., metrology application). This may allow data of a similar typeand/or data that is to be sent to a similar location (e.g., the centraloffice) to be combined and transmitted.

When it is determined to concatenate extracted payload data, the node306 may concatenate (e.g., combine) the extracted payload data. In FIG.3, the node 306 has determined to concatenate the extracted payload data312 to form concatenated payload data 314. By concatenating payloaddata, the payload data may be converted as the payload data traversesnodes of a network.

In some embodiments, the concatenated payload data 314 is transmitted tothe node 308 without segmentation. The concatenated payload data 314 maybe transmitted in a communication packet 316. For example, when a sizeof the concatenated payload data 314 falls within a particular range ofbits and/or bytes, the concatenated payload data 314 may be transmittedto the node 308. The particular range of bits and/or bytes may be basedon a modulation technique and/or data rate supported by the nodes 306and 308. In some instances, a particular modulation technique and/ordata rate may be better suited (e.g., based on a signal-to-noise ratio,etc.) for a particular communication packet size in comparison toanother modulation technique and/or data rate.

In some instances, the communication packet 316 is transmitted at a datarate that is greater than or equal to a data rate at which at least oneof the communication packets 310 was received at the node 306. The datarate associated with transmitting the communication packet 316 may be adata rate that is supported by the node 306 and the node 308. By doingso, a communication time for transmitting payload data may be reduced.

Meanwhile, in other embodiments the concatenated payload data 314 istransmitted to the node 308 after the concatenated payload data 314 issegmented (e.g., divided). The segmentation may be based on a modulationtechnique and/or data rate that is supported by the particular node thatwill send the concatenated payload data (e.g., the node 306) and/or anode that will receive the concatenated payload data (e.g., the node308). In FIG. 3, segmented concatenated payload data 318 represents theconcatenated payload data 314 that has been segmented by the node 306.

To illustrate, when it is determined that a data rate supported by thenodes 306 and 308 is greater than or equal to a predetermined data rate,the concatenated payload data 314 may be segmented into payloads thateach have more than or equal to a predetermined number of bits and/orbytes. Alternatively, when it is determined that a data rate supportedby the nodes 306 and 308 is less than the predetermined data rate, theconcatenated payload data 314 may be segmented into payloads that eachhave less than the predetermined number of bits and/or bytes. By doingso, concatenated payload data may be further converted as the payloaddata traverses nodes of a network.

In embodiments where concatenated payload data is segmented, thesegments may be transmitted individually to one or more nodes. Here,each segment is transmitted in a communication packet that includescontrol data. In FIG. 3, the segmented concatenated payload data 318 istransmitted to the node 308 in individual communication packets, asillustrated by communication packets with segmented concatenated payloaddata 320. Each individual communication packet may be transmitted basedon a modulation technique and/or data rate that is supported by thenodes 306 and 308 and/or that was the basis for segmenting concatenatedpayload data. In some instances, by transmitting communication packetswith segmented payload data, a node may transmit at a lower data ratethan a data rate at which the node received at least some of the payloaddata. A lower data rate may allow the node to avoid interference and/ortransmit a communication packet a longer distance.

The node 306 may send (e.g., transmit) the communication packet 316 orthe communication packets 320 after a time period has expired (e.g.,predetermined time period). For example, the communication packet 316 orthe communication packets 320 may be sent after a time period hasexpired since one of the communication packets 310 was received, after atime period reserved for communication between the nodes 302 and/or 304and the node 306 has expired, and/or after a time period utilized forstoring extracted payload data has expired. By sending a communicationpacket after a time period has expired, a node may wait to see iffurther data will be transmitted to the node that may be combined andtransmitted.

In some instances, data (e.g., payload data) is encrypted and/ordecrypted during conversion of one or more communication packets. Forexample, if one or more of the communication packets, or data within thecommunication packets, are received at a particular node in an encryptedformat, the particular node may decrypt the encrypted data (e.g.,encrypted payload data). The particular node may then concatenate and/orsegment the data. In some instances, concatenated and/or segmented datais encrypted and sent to another node, while in other instances theconcatenated and/or segmented data is sent without being encrypted.

Further, in some instances data (e.g., payload data) may be maintainedin an encrypted format during conversion of one or more communicationpackets. For example, when encrypted data is to be sent through anetwork of nodes, a communication packet may be utilized withunencrypted control data and encrypted payload data. Because the controldata is not encrypted, a node may utilize the control data to determinewhether to combine the payload data (e.g., the encrypted data) withother payload data and forward combined payload data on to another node.For example, the node may utilize address information included in thecontrol data to determine a destination of the encrypted data. As such,in some instances the techniques described herein may be leveragedwithout decrypting encrypted data, thereby maintaining the security ofthe data as the data traverses the network.

As noted above, the conversion techniques described herein may allowdata to be transmitted in an efficient manner. For example, by combiningpayload data that is to be sent to a same or similar location andtransmitting the combined payload data, less overhead data (e.g.,control data) may be utilized to transmit the data in comparison totransmitting the payloads individually. This may reduce communicationtime and increase communication capacity of a network.

Further, by utilizing a modulation technique and/or data rate supportedby nodes of a network to combine and/or segment payload data, thenetwork may leverage capabilities of the nodes. This may potentiallyallow data (e.g., payload data) to be transmitted at a higher data ratethan the data may otherwise have been transmitted. For instance, when adata rate of a communication path (e.g., wireless connection) utilizedto forward on payload data from a node is greater than a data rate of acommunication path utilized to receive the payload data at the node,then the payload data may be combined with other payload data andtransmitted from the node at a higher data rate.

Additionally, in some instances the conversion techniques describedherein may be leveraged for encrypted data. In some examples, payloaddata that is received in an encrypted format may be maintained in anencrypted format while other payload data is combined with encryptedpayload data and the combined payload data is segmented and/or sent toanother node. This may maintain the security of the encrypted payloaddata as the data traverses nodes of a network. Alternatively, oradditionally, payload data that is received in an encrypted format maybe decrypted, combined, segmented, and/or sent to a node. This mayprovide further security to the payload data.

Example Protocol Data Unit (PDU)

FIG. 4 illustrates an example protocol data unit which may be utilizedto transmit payload data. The term PDU is used herein to generally referto any communication, message, or transmission within a communicationnetwork, such as that shown in FIG. 1. The term PDU is based, at leastin concept, on the Open Systems Interconnection (OSI) Model and maycomprise, for example, a bit, a frame, a packet, a segment, etc. In someinstances, one or more layers of the OSI model may be utilized totransfer one or more PDUs between nodes. For example, the data linklayer of the OSI model may be utilized to transfer PDUs between two ormore of the nodes 102 in the architecture 100. In particularimplementations, the media access control (MAC) sub-layer of the datalink layer may be utilized to transfer PDUs between two or more of thenodes 102.

FIG. 4 illustrates an example communication frame 400 that may used totransmit payload data to one or more nodes. In this example, thecommunication frame structure is defined, at least in part, by the IEEE802.15.4 standard. However, in other examples other PDU structures maybe used for transmitting payload data. As shown in FIG. 4, thecommunication frame 400 may include the following fields: frame control,sequence number, destination personal area network (PAN) identifier,destination address, source PAN identifier, source address, auxiliarysecurity header, payload, and frame check sequence (FCS). Details of theforegoing fields of the communication frame are well known to thoseskilled in the art and are not described in detail herein.

In the example communication frame 400, the frame control, sequencenumber, destination PAN identifier, destination address, source PANidentifier, source address, auxiliary security header, and frame checksequence (FCS) include control data. In some instances, the framecontrol, sequence number, destination PAN identifier, destinationaddress, source PAN identifier, source address, auxiliary securityheader represent a header, while the frame check sequence represents afooter. Meanwhile, the payload includes payload data that may bevariable in size based on a size of data to be included in thecommunication frame 400.

Example Process

FIGS. 5A-5B illustrate an example process 500 for extracting payloaddata from communication packets, determining whether to concatenate theextracted payload data, concatenating extracted payload data, andsending the concatenated payload data. For ease of illustration process500 is described as being performed in the architecture 100 of FIG. 1.For example, one or more of the individual operations of the process 500may be performed by any of the nodes 102 in the architecture 100, suchas the node 102B. However, process 500 may be performed in other systemsand/or using other components.

The process 500 (as well as each process described herein) isillustrated as a logical flow graph, each operation of which representsa sequence of operations that can be implemented in hardware, software,or a combination thereof In the context of software, the operationsrepresent computer-executable instructions stored on one or morecomputer-readable storage media that, when executed by one or moreprocessors, perform the recited operations. Generally,computer-executable instructions include routines, programs, objects,components, data structures, and the like that perform particularfunctions or implement particular abstract data types. The order inwhich the operations are described is not intended to be construed as alimitation, and any number of the described operations can be combinedin any order and/or in parallel to implement the process.

In FIG. 5A, at operation 502 a node receives communication packets fromone or more neighboring nodes (e.g., nodes within communication range tothe node). Each communication packet may include control data andpayload data. At operation 504, the node extracts payload data from eachof the received communication packets.

At operation 506, the node stores the extracted payload data in memoryof the node for a period of time (e.g., predetermined time period). Theperiod of time may comprise a contention window, a time period reservedby a node for communication on a network, and so on. In some instances,the time period is specified by a network management system and/or auser associated with the network.

In some examples, the operations 502-506 are performed as eachcommunication packet is received. That is, a node may receive aparticular communication packet, extract payload data from thecommunication packet, and store the extracted payload data to memory fora time period (e.g., predetermined time period). In other instances, theoperations 502-506 may be performed on a plurality of communicationpackets.

At operation 508, a node may determine whether to concatenate (e.g.,combine) extracted payload data. For example, the node may determinewhether to combine payload data that has been extracted in the operation504. The operation 508 may include performing one or more operations todetermine whether to concatenate extracted payload data. Theseoperations are illustrated in FIG. 5B and will be discussed in furtherdetail below.

When the operation 508 determines to not concatenate payload data, anoperation 510 may be performed. At the operation 510, a node may sendthe payload data to another node. In some instances, the payload data issent in the same form in which it was received at the node. That is,payload data received in a single communication packet will be sent in asingle communication packet without combining and/or segmenting thepayload data with other payload data. When the operation 508 determinesto concatenate payload data, an operation 512 may be performed. At theoperation 512, a node may concatenate (e.g., combine) extracted payloaddata. For example, the node may concatenate two or more extractedpayloads based on a determination at the operation 508 to concatenatethe two or more extracted payloads. The concatenated payloads may formcontinuous data.

In some instances, the process 500 includes an operation 514. At theoperation 514, a node segments concatenated payload data. That is, theconcatenated payload data may be divided into multiple segments. Theoperation 514 may be performed based on a modulation technique and/ordata rate supported by a node that will send the segments and/or a nodethat will receive the segments.

At operation 516, a node may send (e.g., transmit) concatenated payloaddata to one or more neighboring nodes. In some instances, the segmentedconcatenated payload data of the operation 514 is sent as multiplecommunication packets, while in other instances the concatenated payloaddata of the operation 512 is sent in a single communication packet.Further, in some instances the concatenated payload data is sent after atime period (e.g., predetermined time period) has expired. The timeperiod may correspond to the time period during which extracted payloaddata is stored in the operation 506.

FIG. 5B illustrates example operations 518-522 that may be performed todetermine whether to concatenate payload data at the operation 508. Anyone or a combination of the operations 518-522 may be performed at theoperation 508 in any order. At operation 518, the node may determine adestination of extracted payload data. This determination may be basedon destination addresses included in control data associated withextracted payload data. For instance, when first extracted payload andsecond extracted payload data are to be sent to a same node or nodeswithin a predetermined distance of each other (e.g., same geographicalregion), the operation 508 may determine to concatenate the first andsecond extracted payload data.

At operation 520, the node may determine a modulation technique and/ordata rate supported by a node that received the communication packetsand a node to which concatenated extracted payload data will be sent.When the modulation technique and/or data rate are a particularmodulation technique and/or data rate (e.g., a data rate greater than adata rate at which a communication packet was received), the operation508 may determine to concatenate extracted payload data.

At operation 522, the node may determine an application or applicationtype associated with extracted payload data. When an application orapplication type is the same or similar for extracted payloads, theoperation 508 may determine to concatenate the extracted payloads.

CONCLUSION

Although embodiments have been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the disclosure is not necessarily limited to the specific featuresor acts described. Rather, the specific features and acts are disclosedherein as illustrative forms of implementing the embodiments.

1. One or more devices comprising: a processing unit configured toperform acts including: receiving a plurality of communication packetsfrom one or more first nodes, at least one of the plurality ofcommunication packets being received at a first data rate, eachcommunication packet of the plurality of communication packetscomprising control data and payload data, the control data forcontrolling sending and/or receiving of the payload data, the payloaddata comprising electricity consumption data, water consumption data,and/or natural gas consumption data, wherein the receiving the pluralityof communication packets includes receiving the plurality ofcommunication packets from multiple different nodes over one or morewireless connections; extracting the payload data from eachcommunication packet of the plurality of communication packets; storingeach extracted payload data of the plurality of communication packetsfor a time period; determining that (i) each extracted payload data ofthe plurality of communication packets is to be sent to a same node ornodes within a predetermined distance of each other, (ii) a second datarate supported by the one or more devices and one or more second nodesis greater than or equal to the first data rate, and/or (iii) anapplication associated with each extracted payload data of the pluralityof communication packets is a same application or same type ofapplication; concatenating each extracted payload data of the pluralityof communication at least partly in response to the determining; andsending the concatenated payload data to the one or more second nodes ina single communication packet at the second data rate that is greaterthan or equal to the first data rate.
 2. (canceled)
 3. The one or moredevices of claim 1, wherein the time period comprises a period of timereserved for receiving at least some of the plurality of communicationpackets from the one or more first nodes and/or a contention windowdefining a period of time during which the one or more devices wait tocommunicate.
 4. The one or more devices of claim 1, wherein the sendingincludes sending the concatenated payload data after a predeterminedtime period has expired since at least one of the plurality ofcommunication packets was received from the one or more first nodes. 5.The one or more devices of claim 1, wherein the acts further include:segmenting the concatenated payload data into segmented payloads basedat least in part on a modulation technique and/or a data rate that issupported by the one or more devices and the one or more second nodes,and wherein: the sending includes sending the segmented payloadsindividually to the one or more second nodes.
 6. A method comprising:receiving, at a first node, a first communication packet and a secondcommunication packet, the first and second communication packets eachcomprising control data and payload data, the control data forcontrolling sending and/or receiving of the payload data, wherein thepayload data of the first communication packet and the payload data ofthe second communication packet each comprise electricity consumptiondata, water consumption data, and/or natural gas consumption data;extracting, by the first node, the payload data from the firstcommunication packet and the payload data from the second communicationpacket; determining, by the first node, to concatenate the extractedpayload data of the first communication packet with the extractedpayload of the second communication packet; concatenating, by the firstnode and at least partly in response to the determining, the extractedpayload data of the first communication packet with the extractedpayload of the second communication packet to form concatenated payloaddata; and sending, by the first node, the concatenated payload data to asecond node.
 7. The method of claim 6, wherein: the control data of thefirst communication packet identifies a first destination address of anode to which the payload data of the first communication packet is tobe sent and the control data of the second communication packetidentifies a second destination address of a node to which the payloaddata of the second communication packet is to be sent; and thedetermining includes determining to concatenate the extracted payloaddata of the first communication packet with the extracted payload of thesecond communication packet based at least in part on the first andsecond destination addresses, the first and second destination addressesidentifying a same node or nodes located within a predetermined distanceof each other.
 8. The method of claim 6, wherein: the firstcommunication packet and/or the second communication packet are receivedfrom a third node; and the determining includes determining toconcatenate the extracted payload data of the first communication packetwith the extracted payload of the second communication packet based atleast in part on a data rate supported by the first and second nodes anda data rate supported by the first and third nodes, the data ratesupported by the first and second nodes being greater than the data ratesupported by the first and third nodes.
 9. The method of claim 6,wherein the determining includes determining to concatenate theextracted payload data of the first communication packet with theextracted payload of the second communication packet based at least inpart on an application associated with the payload data of the firstcommunication packet and an application associated with the payload dataof the second communication packet, the application associated with thepayload data of the first communication packet being of a same type asthe application associated with the payload data of the secondcommunication packet.
 10. The method of claim 6, wherein: the receivingincludes receiving the first communication packet and/or the secondcommunication packet at a first data rate over a wireless connection;and the sending includes sending the concatenated payload data at asecond data rate over another wireless connection, the second data ratebeing greater than or equal to the first data rate.
 11. The method ofclaim 6, further comprising: segmenting the concatenated payload datainto segmented payloads based at least in part on a modulation techniqueand/or data rate that is supported by the first and second nodes, andwherein: the sending includes sending the segmented payloadsindividually to the second node with the modulation technique and/or atthe date rate that is supported by the first and second nodes. 12.(canceled)
 13. The method of claim 6, further comprising: determiningthat a data rate supported by the first and second nodes is less than apredetermined data rate; and segmenting the concatenated payload datainto segmented payloads at least partly in response to determining thatthe data rate supported by the first and second nodes is less than thepredetermined data rate, each of the segmented payloads having less thana predetermined number of bits and/or bytes, and wherein: the sendingincludes sending the segmented payloads individually to the second node.14. The method of claim 6, wherein the receiving includes: receiving thefirst communication packet from a third node, the first communicationpacket indicating that the second communication packet will be sent fromthe third node, the payload of the first communication packet comprisinga first portion of data stored at the third node; storing the firstcommunication packet for a predetermined time period, the predeterminedtime period comprising a period of time reserved for communicationbetween the first and third nodes; and receiving the secondcommunication packet from the third node during the predetermined timeperiod, the payload data of the second communication packet comprising asecond portion of the data stored at the third node.
 15. The method ofclaim 6, wherein the sending includes sending the concatenated payloaddata after a predetermined time period has expired since the firstcommunication packet and/or the second communication packet was receivedat the first node.
 16. A method comprising: receiving, at a first node,a first communication packet and a second communication packet from oneor more second nodes, the first and second communication packets eachcomprising control data and payload data, the control data forcontrolling sending and/or receiving of the payload data; extracting, atthe first node, the payload data from the first communication packet andthe payload data from the second communication packet; storing, at thefirst node, the extracted payload data for a time period; determining,at the first node, to combine the extracted payload data of the firstcommunication packet with the extracted payload of the secondcommunication packet, wherein the determining is based at least in parton destinations to where each of the extracted payload data are to besent, a data rate supported by the first node and the one or more thirdnodes, and/or an application associated with each of the extractedpayload data; combining, at the first node and at least partly inresponse to the determining, the extracted payload data of the firstcommunication packet with the extracted payload of the secondcommunication packet to form combined payload data; and transmitting, bythe first node, the combined payload data to one or more third nodes.17. The method of claim 16, wherein the time period comprises a periodof time reserved for receiving at least some of the communicationpackets from the one or more second nodes and/or a contention windowdefining a period of time during which the first node waits to transmit.18. The method of claim 16, wherein the transmitting includestransmitting the combined payload data after a predetermined time periodhas expired since the first communication packet and/or the secondcommunication packet was received from the one or more second nodes. 19.(canceled)
 20. The method of claim 16, further comprising: segmentingthe combined payload data into segmented payloads based at least in parton a modulation technique and/or data rate that is supported by thefirst node and the one or more third nodes, and wherein: thetransmitting includes transmitting the segmented payloads individuallyto the one or more third nodes with the modulation technique and/or atthe date rate that is supported by the first node and the one or morethird nodes.